import mysql.connector
import redis


def save_to_redis(data):
    # 连接到 Redis 服务器
    r = redis.Redis(host='localhost', port=6379, db=0)
    # 遍历数据，将每行数据存储到 Redis 中
    for row in data:
        # 假设每个用户有一个唯一的 id 作为键，其他信息作为值存储
        user_id = row[0]  # 假设第一列是用户 id
        user_info = str(row)  # 将整行数据转换为字符串作为值
        r.set(user_id, user_info)
    print("数据已成功存储到 Redis")


def fetch_data_from_mysql():
    cnx = mysql.connector.connect(user='root', password='123456', host='localhost', port=3307, database='supermarket')
    cursor = cnx.cursor()
    cursor.execute("SELECT * FROM supplier")
    data = cursor.fetchall()
    cursor.close()
    cnx.close()
    return data



def get_data_from_redis(user_id):
    print("获取Id的用户：")
    # 连接到 Redis 服务器
    r = redis.Redis(host='localhost', port=6379, db=0)
    # 根据用户 id 获取用户信息
    user_info = r.get(user_id)
    if user_info:
        print(f"用户 {user_id} 的信息：{user_info.decode('utf-8')}")
    else:
        print(f"未找到用户 {user_id} 的信息")

def scan_all_users_from_redis():
    print("获取所有用户：")
    # 连接到 Redis 服务器
    r = redis.Redis(host='localhost', port=6379, db=0)
    # 使用 scan 命令遍历所有键
    for key in r.scan_iter():
        user_id = key.decode('utf-8')
        user_info = r.get(key).decode('utf-8')
        # 对每个用户进行操作
        print(f"用户ID：{user_id}，用户信息：{user_info}")

# 从redis中获取数据
if __name__ == "__main__":
    scan_all_users_from_redis()

# 从Mysql中获取数据
if __name__ == "__main__":
    data = fetch_data_from_mysql()
    save_to_redis(data)
    # 获取用户 id 为 '1' 的用户信息
    get_data_from_redis('1')
